
imu9250:     file format elf64-x86-64


Disassembly of section .init:

0000000000001000 <_init>:
    1000:	f3 0f 1e fa          	endbr64 
    1004:	48 83 ec 08          	sub    $0x8,%rsp
    1008:	48 8b 05 d9 2f 00 00 	mov    0x2fd9(%rip),%rax        # 3fe8 <__gmon_start__>
    100f:	48 85 c0             	test   %rax,%rax
    1012:	74 02                	je     1016 <_init+0x16>
    1014:	ff d0                	callq  *%rax
    1016:	48 83 c4 08          	add    $0x8,%rsp
    101a:	c3                   	retq   

Disassembly of section .plt:

0000000000001020 <.plt>:
    1020:	ff 35 52 2f 00 00    	pushq  0x2f52(%rip)        # 3f78 <_GLOBAL_OFFSET_TABLE_+0x8>
    1026:	f2 ff 25 53 2f 00 00 	bnd jmpq *0x2f53(%rip)        # 3f80 <_GLOBAL_OFFSET_TABLE_+0x10>
    102d:	0f 1f 00             	nopl   (%rax)
    1030:	f3 0f 1e fa          	endbr64 
    1034:	68 00 00 00 00       	pushq  $0x0
    1039:	f2 e9 e1 ff ff ff    	bnd jmpq 1020 <.plt>
    103f:	90                   	nop
    1040:	f3 0f 1e fa          	endbr64 
    1044:	68 01 00 00 00       	pushq  $0x1
    1049:	f2 e9 d1 ff ff ff    	bnd jmpq 1020 <.plt>
    104f:	90                   	nop
    1050:	f3 0f 1e fa          	endbr64 
    1054:	68 02 00 00 00       	pushq  $0x2
    1059:	f2 e9 c1 ff ff ff    	bnd jmpq 1020 <.plt>
    105f:	90                   	nop
    1060:	f3 0f 1e fa          	endbr64 
    1064:	68 03 00 00 00       	pushq  $0x3
    1069:	f2 e9 b1 ff ff ff    	bnd jmpq 1020 <.plt>
    106f:	90                   	nop
    1070:	f3 0f 1e fa          	endbr64 
    1074:	68 04 00 00 00       	pushq  $0x4
    1079:	f2 e9 a1 ff ff ff    	bnd jmpq 1020 <.plt>
    107f:	90                   	nop
    1080:	f3 0f 1e fa          	endbr64 
    1084:	68 05 00 00 00       	pushq  $0x5
    1089:	f2 e9 91 ff ff ff    	bnd jmpq 1020 <.plt>
    108f:	90                   	nop
    1090:	f3 0f 1e fa          	endbr64 
    1094:	68 06 00 00 00       	pushq  $0x6
    1099:	f2 e9 81 ff ff ff    	bnd jmpq 1020 <.plt>
    109f:	90                   	nop
    10a0:	f3 0f 1e fa          	endbr64 
    10a4:	68 07 00 00 00       	pushq  $0x7
    10a9:	f2 e9 71 ff ff ff    	bnd jmpq 1020 <.plt>
    10af:	90                   	nop
    10b0:	f3 0f 1e fa          	endbr64 
    10b4:	68 08 00 00 00       	pushq  $0x8
    10b9:	f2 e9 61 ff ff ff    	bnd jmpq 1020 <.plt>
    10bf:	90                   	nop
    10c0:	f3 0f 1e fa          	endbr64 
    10c4:	68 09 00 00 00       	pushq  $0x9
    10c9:	f2 e9 51 ff ff ff    	bnd jmpq 1020 <.plt>
    10cf:	90                   	nop

Disassembly of section .plt.got:

00000000000010d0 <__cxa_finalize@plt>:
    10d0:	f3 0f 1e fa          	endbr64 
    10d4:	f2 ff 25 1d 2f 00 00 	bnd jmpq *0x2f1d(%rip)        # 3ff8 <__cxa_finalize@GLIBC_2.2.5>
    10db:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

Disassembly of section .plt.sec:

00000000000010e0 <free@plt>:
    10e0:	f3 0f 1e fa          	endbr64 
    10e4:	f2 ff 25 9d 2e 00 00 	bnd jmpq *0x2e9d(%rip)        # 3f88 <free@GLIBC_2.2.5>
    10eb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000010f0 <puts@plt>:
    10f0:	f3 0f 1e fa          	endbr64 
    10f4:	f2 ff 25 95 2e 00 00 	bnd jmpq *0x2e95(%rip)        # 3f90 <puts@GLIBC_2.2.5>
    10fb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001100 <__stack_chk_fail@plt>:
    1100:	f3 0f 1e fa          	endbr64 
    1104:	f2 ff 25 8d 2e 00 00 	bnd jmpq *0x2e8d(%rip)        # 3f98 <__stack_chk_fail@GLIBC_2.4>
    110b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001110 <printf@plt>:
    1110:	f3 0f 1e fa          	endbr64 
    1114:	f2 ff 25 85 2e 00 00 	bnd jmpq *0x2e85(%rip)        # 3fa0 <printf@GLIBC_2.2.5>
    111b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001120 <ioctl@plt>:
    1120:	f3 0f 1e fa          	endbr64 
    1124:	f2 ff 25 7d 2e 00 00 	bnd jmpq *0x2e7d(%rip)        # 3fa8 <ioctl@GLIBC_2.2.5>
    112b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001130 <close@plt>:
    1130:	f3 0f 1e fa          	endbr64 
    1134:	f2 ff 25 75 2e 00 00 	bnd jmpq *0x2e75(%rip)        # 3fb0 <close@GLIBC_2.2.5>
    113b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001140 <malloc@plt>:
    1140:	f3 0f 1e fa          	endbr64 
    1144:	f2 ff 25 6d 2e 00 00 	bnd jmpq *0x2e6d(%rip)        # 3fb8 <malloc@GLIBC_2.2.5>
    114b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001150 <open@plt>:
    1150:	f3 0f 1e fa          	endbr64 
    1154:	f2 ff 25 65 2e 00 00 	bnd jmpq *0x2e65(%rip)        # 3fc0 <open@GLIBC_2.2.5>
    115b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001160 <perror@plt>:
    1160:	f3 0f 1e fa          	endbr64 
    1164:	f2 ff 25 5d 2e 00 00 	bnd jmpq *0x2e5d(%rip)        # 3fc8 <perror@GLIBC_2.2.5>
    116b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001170 <exit@plt>:
    1170:	f3 0f 1e fa          	endbr64 
    1174:	f2 ff 25 55 2e 00 00 	bnd jmpq *0x2e55(%rip)        # 3fd0 <exit@GLIBC_2.2.5>
    117b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

Disassembly of section .text:

0000000000001180 <_start>:
    1180:	f3 0f 1e fa          	endbr64 
    1184:	31 ed                	xor    %ebp,%ebp
    1186:	49 89 d1             	mov    %rdx,%r9
    1189:	5e                   	pop    %rsi
    118a:	48 89 e2             	mov    %rsp,%rdx
    118d:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
    1191:	50                   	push   %rax
    1192:	54                   	push   %rsp
    1193:	4c 8d 05 a6 07 00 00 	lea    0x7a6(%rip),%r8        # 1940 <__libc_csu_fini>
    119a:	48 8d 0d 2f 07 00 00 	lea    0x72f(%rip),%rcx        # 18d0 <__libc_csu_init>
    11a1:	48 8d 3d 59 05 00 00 	lea    0x559(%rip),%rdi        # 1701 <main>
    11a8:	ff 15 32 2e 00 00    	callq  *0x2e32(%rip)        # 3fe0 <__libc_start_main@GLIBC_2.2.5>
    11ae:	f4                   	hlt    
    11af:	90                   	nop

00000000000011b0 <deregister_tm_clones>:
    11b0:	48 8d 3d 59 2e 00 00 	lea    0x2e59(%rip),%rdi        # 4010 <__TMC_END__>
    11b7:	48 8d 05 52 2e 00 00 	lea    0x2e52(%rip),%rax        # 4010 <__TMC_END__>
    11be:	48 39 f8             	cmp    %rdi,%rax
    11c1:	74 15                	je     11d8 <deregister_tm_clones+0x28>
    11c3:	48 8b 05 0e 2e 00 00 	mov    0x2e0e(%rip),%rax        # 3fd8 <_ITM_deregisterTMCloneTable>
    11ca:	48 85 c0             	test   %rax,%rax
    11cd:	74 09                	je     11d8 <deregister_tm_clones+0x28>
    11cf:	ff e0                	jmpq   *%rax
    11d1:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
    11d8:	c3                   	retq   
    11d9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

00000000000011e0 <register_tm_clones>:
    11e0:	48 8d 3d 29 2e 00 00 	lea    0x2e29(%rip),%rdi        # 4010 <__TMC_END__>
    11e7:	48 8d 35 22 2e 00 00 	lea    0x2e22(%rip),%rsi        # 4010 <__TMC_END__>
    11ee:	48 29 fe             	sub    %rdi,%rsi
    11f1:	48 89 f0             	mov    %rsi,%rax
    11f4:	48 c1 ee 3f          	shr    $0x3f,%rsi
    11f8:	48 c1 f8 03          	sar    $0x3,%rax
    11fc:	48 01 c6             	add    %rax,%rsi
    11ff:	48 d1 fe             	sar    %rsi
    1202:	74 14                	je     1218 <register_tm_clones+0x38>
    1204:	48 8b 05 e5 2d 00 00 	mov    0x2de5(%rip),%rax        # 3ff0 <_ITM_registerTMCloneTable>
    120b:	48 85 c0             	test   %rax,%rax
    120e:	74 08                	je     1218 <register_tm_clones+0x38>
    1210:	ff e0                	jmpq   *%rax
    1212:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
    1218:	c3                   	retq   
    1219:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000001220 <__do_global_dtors_aux>:
    1220:	f3 0f 1e fa          	endbr64 
    1224:	80 3d e5 2d 00 00 00 	cmpb   $0x0,0x2de5(%rip)        # 4010 <__TMC_END__>
    122b:	75 2b                	jne    1258 <__do_global_dtors_aux+0x38>
    122d:	55                   	push   %rbp
    122e:	48 83 3d c2 2d 00 00 	cmpq   $0x0,0x2dc2(%rip)        # 3ff8 <__cxa_finalize@GLIBC_2.2.5>
    1235:	00 
    1236:	48 89 e5             	mov    %rsp,%rbp
    1239:	74 0c                	je     1247 <__do_global_dtors_aux+0x27>
    123b:	48 8b 3d c6 2d 00 00 	mov    0x2dc6(%rip),%rdi        # 4008 <__dso_handle>
    1242:	e8 89 fe ff ff       	callq  10d0 <__cxa_finalize@plt>
    1247:	e8 64 ff ff ff       	callq  11b0 <deregister_tm_clones>
    124c:	c6 05 bd 2d 00 00 01 	movb   $0x1,0x2dbd(%rip)        # 4010 <__TMC_END__>
    1253:	5d                   	pop    %rbp
    1254:	c3                   	retq   
    1255:	0f 1f 00             	nopl   (%rax)
    1258:	c3                   	retq   
    1259:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000001260 <frame_dummy>:
    1260:	f3 0f 1e fa          	endbr64 
    1264:	e9 77 ff ff ff       	jmpq   11e0 <register_tm_clones>

0000000000001269 <open_i2c>:
    1269:	f3 0f 1e fa          	endbr64 
    126d:	55                   	push   %rbp
    126e:	48 89 e5             	mov    %rsp,%rbp
    1271:	48 83 ec 10          	sub    $0x10,%rsp
    1275:	be 02 00 00 00       	mov    $0x2,%esi
    127a:	48 8d 3d 83 0d 00 00 	lea    0xd83(%rip),%rdi        # 2004 <_IO_stdin_used+0x4>
    1281:	b8 00 00 00 00       	mov    $0x0,%eax
    1286:	e8 c5 fe ff ff       	callq  1150 <open@plt>
    128b:	89 45 fc             	mov    %eax,-0x4(%rbp)
    128e:	83 7d fc 00          	cmpl   $0x0,-0x4(%rbp)
    1292:	79 16                	jns    12aa <open_i2c+0x41>
    1294:	48 8d 3d 74 0d 00 00 	lea    0xd74(%rip),%rdi        # 200f <_IO_stdin_used+0xf>
    129b:	e8 c0 fe ff ff       	callq  1160 <perror@plt>
    12a0:	bf 01 00 00 00       	mov    $0x1,%edi
    12a5:	e8 c6 fe ff ff       	callq  1170 <exit@plt>
    12aa:	8b 45 fc             	mov    -0x4(%rbp),%eax
    12ad:	c9                   	leaveq 
    12ae:	c3                   	retq   

00000000000012af <close_i2c>:
    12af:	f3 0f 1e fa          	endbr64 
    12b3:	55                   	push   %rbp
    12b4:	48 89 e5             	mov    %rsp,%rbp
    12b7:	48 83 ec 10          	sub    $0x10,%rsp
    12bb:	89 7d fc             	mov    %edi,-0x4(%rbp)
    12be:	8b 45 fc             	mov    -0x4(%rbp),%eax
    12c1:	89 c7                	mov    %eax,%edi
    12c3:	e8 68 fe ff ff       	callq  1130 <close@plt>
    12c8:	90                   	nop
    12c9:	c9                   	leaveq 
    12ca:	c3                   	retq   

00000000000012cb <hd_i2c_set>:
    12cb:	f3 0f 1e fa          	endbr64 
    12cf:	55                   	push   %rbp
    12d0:	48 89 e5             	mov    %rsp,%rbp
    12d3:	48 83 ec 10          	sub    $0x10,%rsp
    12d7:	89 7d fc             	mov    %edi,-0x4(%rbp)
    12da:	89 75 f8             	mov    %esi,-0x8(%rbp)
    12dd:	89 55 f4             	mov    %edx,-0xc(%rbp)
    12e0:	83 7d fc 00          	cmpl   $0x0,-0x4(%rbp)
    12e4:	75 07                	jne    12ed <hd_i2c_set+0x22>
    12e6:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
    12eb:	eb 67                	jmp    1354 <hd_i2c_set+0x89>
    12ed:	83 7d f8 00          	cmpl   $0x0,-0x8(%rbp)
    12f1:	74 05                	je     12f8 <hd_i2c_set+0x2d>
    12f3:	8b 45 f8             	mov    -0x8(%rbp),%eax
    12f6:	eb 05                	jmp    12fd <hd_i2c_set+0x32>
    12f8:	b8 01 00 00 00       	mov    $0x1,%eax
    12fd:	8b 4d fc             	mov    -0x4(%rbp),%ecx
    1300:	89 c2                	mov    %eax,%edx
    1302:	be 02 07 00 00       	mov    $0x702,%esi
    1307:	89 cf                	mov    %ecx,%edi
    1309:	b8 00 00 00 00       	mov    $0x0,%eax
    130e:	e8 0d fe ff ff       	callq  1120 <ioctl@plt>
    1313:	85 c0                	test   %eax,%eax
    1315:	79 07                	jns    131e <hd_i2c_set+0x53>
    1317:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
    131c:	eb 36                	jmp    1354 <hd_i2c_set+0x89>
    131e:	83 7d f4 00          	cmpl   $0x0,-0xc(%rbp)
    1322:	74 05                	je     1329 <hd_i2c_set+0x5e>
    1324:	8b 45 f4             	mov    -0xc(%rbp),%eax
    1327:	eb 05                	jmp    132e <hd_i2c_set+0x63>
    1329:	b8 03 00 00 00       	mov    $0x3,%eax
    132e:	8b 4d fc             	mov    -0x4(%rbp),%ecx
    1331:	89 c2                	mov    %eax,%edx
    1333:	be 01 07 00 00       	mov    $0x701,%esi
    1338:	89 cf                	mov    %ecx,%edi
    133a:	b8 00 00 00 00       	mov    $0x0,%eax
    133f:	e8 dc fd ff ff       	callq  1120 <ioctl@plt>
    1344:	85 c0                	test   %eax,%eax
    1346:	79 07                	jns    134f <hd_i2c_set+0x84>
    1348:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
    134d:	eb 05                	jmp    1354 <hd_i2c_set+0x89>
    134f:	b8 00 00 00 00       	mov    $0x0,%eax
    1354:	c9                   	leaveq 
    1355:	c3                   	retq   

0000000000001356 <read_i2c>:
    1356:	f3 0f 1e fa          	endbr64 
    135a:	55                   	push   %rbp
    135b:	48 89 e5             	mov    %rsp,%rbp
    135e:	53                   	push   %rbx
    135f:	48 83 ec 48          	sub    $0x48,%rsp
    1363:	89 7d bc             	mov    %edi,-0x44(%rbp)
    1366:	89 75 b8             	mov    %esi,-0x48(%rbp)
    1369:	89 55 b4             	mov    %edx,-0x4c(%rbp)
    136c:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1373:	00 00 
    1375:	48 89 45 e8          	mov    %rax,-0x18(%rbp)
    1379:	31 c0                	xor    %eax,%eax
    137b:	c7 45 c8 ff ff ff ff 	movl   $0xffffffff,-0x38(%rbp)
    1382:	c7 45 cc ff ff ff ff 	movl   $0xffffffff,-0x34(%rbp)
    1389:	c7 45 d8 02 00 00 00 	movl   $0x2,-0x28(%rbp)
    1390:	8b 45 d8             	mov    -0x28(%rbp),%eax
    1393:	89 c0                	mov    %eax,%eax
    1395:	48 c1 e0 04          	shl    $0x4,%rax
    1399:	48 89 c7             	mov    %rax,%rdi
    139c:	e8 9f fd ff ff       	callq  1140 <malloc@plt>
    13a1:	48 89 45 d0          	mov    %rax,-0x30(%rbp)
    13a5:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    13a9:	48 85 c0             	test   %rax,%rax
    13ac:	75 2c                	jne    13da <read_i2c+0x84>
    13ae:	48 8d 3d 6b 0c 00 00 	lea    0xc6b(%rip),%rdi        # 2020 <_IO_stdin_used+0x20>
    13b5:	e8 36 fd ff ff       	callq  10f0 <puts@plt>
    13ba:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    13be:	48 89 c7             	mov    %rax,%rdi
    13c1:	e8 1a fd ff ff       	callq  10e0 <free@plt>
    13c6:	8b 45 bc             	mov    -0x44(%rbp),%eax
    13c9:	89 c7                	mov    %eax,%edi
    13cb:	e8 60 fd ff ff       	callq  1130 <close@plt>
    13d0:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
    13d5:	e9 17 01 00 00       	jmpq   14f1 <read_i2c+0x19b>
    13da:	c7 45 d8 02 00 00 00 	movl   $0x2,-0x28(%rbp)
    13e1:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    13e5:	66 c7 40 04 01 00    	movw   $0x1,0x4(%rax)
    13eb:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    13ef:	8b 55 b8             	mov    -0x48(%rbp),%edx
    13f2:	66 89 10             	mov    %dx,(%rax)
    13f5:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    13f9:	66 c7 40 02 00 00    	movw   $0x0,0x2(%rax)
    13ff:	48 8b 5d d0          	mov    -0x30(%rbp),%rbx
    1403:	bf 01 00 00 00       	mov    $0x1,%edi
    1408:	e8 33 fd ff ff       	callq  1140 <malloc@plt>
    140d:	48 89 43 08          	mov    %rax,0x8(%rbx)
    1411:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    1415:	48 8b 40 08          	mov    0x8(%rax),%rax
    1419:	8b 55 b4             	mov    -0x4c(%rbp),%edx
    141c:	88 10                	mov    %dl,(%rax)
    141e:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    1422:	48 83 c0 10          	add    $0x10,%rax
    1426:	66 c7 40 04 01 00    	movw   $0x1,0x4(%rax)
    142c:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    1430:	48 83 c0 10          	add    $0x10,%rax
    1434:	8b 55 b8             	mov    -0x48(%rbp),%edx
    1437:	66 89 10             	mov    %dx,(%rax)
    143a:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    143e:	48 83 c0 10          	add    $0x10,%rax
    1442:	66 c7 40 02 01 00    	movw   $0x1,0x2(%rax)
    1448:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    144c:	48 8d 58 10          	lea    0x10(%rax),%rbx
    1450:	bf 01 00 00 00       	mov    $0x1,%edi
    1455:	e8 e6 fc ff ff       	callq  1140 <malloc@plt>
    145a:	48 89 43 08          	mov    %rax,0x8(%rbx)
    145e:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    1462:	48 83 c0 10          	add    $0x10,%rax
    1466:	48 8b 40 08          	mov    0x8(%rax),%rax
    146a:	c6 00 00             	movb   $0x0,(%rax)
    146d:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    1471:	8b 45 bc             	mov    -0x44(%rbp),%eax
    1474:	be 07 07 00 00       	mov    $0x707,%esi
    1479:	89 c7                	mov    %eax,%edi
    147b:	b8 00 00 00 00       	mov    $0x0,%eax
    1480:	e8 9b fc ff ff       	callq  1120 <ioctl@plt>
    1485:	89 45 cc             	mov    %eax,-0x34(%rbp)
    1488:	83 7d cc 00          	cmpl   $0x0,-0x34(%rbp)
    148c:	79 2f                	jns    14bd <read_i2c+0x167>
    148e:	48 8d 3d 9e 0b 00 00 	lea    0xb9e(%rip),%rdi        # 2033 <_IO_stdin_used+0x33>
    1495:	e8 56 fc ff ff       	callq  10f0 <puts@plt>
    149a:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    149e:	48 8b 40 08          	mov    0x8(%rax),%rax
    14a2:	48 89 c7             	mov    %rax,%rdi
    14a5:	e8 36 fc ff ff       	callq  10e0 <free@plt>
    14aa:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    14ae:	48 89 c7             	mov    %rax,%rdi
    14b1:	e8 2a fc ff ff       	callq  10e0 <free@plt>
    14b6:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
    14bb:	eb 34                	jmp    14f1 <read_i2c+0x19b>
    14bd:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    14c1:	48 83 c0 10          	add    $0x10,%rax
    14c5:	48 8b 40 08          	mov    0x8(%rax),%rax
    14c9:	0f b6 00             	movzbl (%rax),%eax
    14cc:	0f b6 c0             	movzbl %al,%eax
    14cf:	89 45 c8             	mov    %eax,-0x38(%rbp)
    14d2:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    14d6:	48 8b 40 08          	mov    0x8(%rax),%rax
    14da:	48 89 c7             	mov    %rax,%rdi
    14dd:	e8 fe fb ff ff       	callq  10e0 <free@plt>
    14e2:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    14e6:	48 89 c7             	mov    %rax,%rdi
    14e9:	e8 f2 fb ff ff       	callq  10e0 <free@plt>
    14ee:	8b 45 c8             	mov    -0x38(%rbp),%eax
    14f1:	48 8b 4d e8          	mov    -0x18(%rbp),%rcx
    14f5:	64 48 33 0c 25 28 00 	xor    %fs:0x28,%rcx
    14fc:	00 00 
    14fe:	74 05                	je     1505 <read_i2c+0x1af>
    1500:	e8 fb fb ff ff       	callq  1100 <__stack_chk_fail@plt>
    1505:	48 83 c4 48          	add    $0x48,%rsp
    1509:	5b                   	pop    %rbx
    150a:	5d                   	pop    %rbp
    150b:	c3                   	retq   

000000000000150c <read_i2c_block_frequency>:
    150c:	f3 0f 1e fa          	endbr64 
    1510:	55                   	push   %rbp
    1511:	48 89 e5             	mov    %rsp,%rbp
    1514:	48 83 ec 30          	sub    $0x30,%rsp
    1518:	89 7d ec             	mov    %edi,-0x14(%rbp)
    151b:	89 75 e8             	mov    %esi,-0x18(%rbp)
    151e:	89 55 e4             	mov    %edx,-0x1c(%rbp)
    1521:	89 4d e0             	mov    %ecx,-0x20(%rbp)
    1524:	4c 89 45 d8          	mov    %r8,-0x28(%rbp)
    1528:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
    152f:	eb 2e                	jmp    155f <read_i2c_block_frequency+0x53>
    1531:	8b 55 e4             	mov    -0x1c(%rbp),%edx
    1534:	8b 45 fc             	mov    -0x4(%rbp),%eax
    1537:	01 c2                	add    %eax,%edx
    1539:	8b 4d e8             	mov    -0x18(%rbp),%ecx
    153c:	8b 45 ec             	mov    -0x14(%rbp),%eax
    153f:	89 ce                	mov    %ecx,%esi
    1541:	89 c7                	mov    %eax,%edi
    1543:	e8 0e fe ff ff       	callq  1356 <read_i2c>
    1548:	89 c1                	mov    %eax,%ecx
    154a:	8b 45 fc             	mov    -0x4(%rbp),%eax
    154d:	48 63 d0             	movslq %eax,%rdx
    1550:	48 8b 45 d8          	mov    -0x28(%rbp),%rax
    1554:	48 01 d0             	add    %rdx,%rax
    1557:	89 ca                	mov    %ecx,%edx
    1559:	88 10                	mov    %dl,(%rax)
    155b:	83 45 fc 01          	addl   $0x1,-0x4(%rbp)
    155f:	8b 45 fc             	mov    -0x4(%rbp),%eax
    1562:	3b 45 e0             	cmp    -0x20(%rbp),%eax
    1565:	7c ca                	jl     1531 <read_i2c_block_frequency+0x25>
    1567:	b8 00 00 00 00       	mov    $0x0,%eax
    156c:	c9                   	leaveq 
    156d:	c3                   	retq   

000000000000156e <write_i2c>:
    156e:	f3 0f 1e fa          	endbr64 
    1572:	55                   	push   %rbp
    1573:	48 89 e5             	mov    %rsp,%rbp
    1576:	53                   	push   %rbx
    1577:	48 83 ec 48          	sub    $0x48,%rsp
    157b:	89 7d bc             	mov    %edi,-0x44(%rbp)
    157e:	89 75 b8             	mov    %esi,-0x48(%rbp)
    1581:	89 55 b4             	mov    %edx,-0x4c(%rbp)
    1584:	89 4d b0             	mov    %ecx,-0x50(%rbp)
    1587:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    158e:	00 00 
    1590:	48 89 45 e8          	mov    %rax,-0x18(%rbp)
    1594:	31 c0                	xor    %eax,%eax
    1596:	c7 45 cc ff ff ff ff 	movl   $0xffffffff,-0x34(%rbp)
    159d:	c7 45 d8 02 00 00 00 	movl   $0x2,-0x28(%rbp)
    15a4:	8b 45 d8             	mov    -0x28(%rbp),%eax
    15a7:	89 c0                	mov    %eax,%eax
    15a9:	48 c1 e0 04          	shl    $0x4,%rax
    15ad:	48 89 c7             	mov    %rax,%rdi
    15b0:	e8 8b fb ff ff       	callq  1140 <malloc@plt>
    15b5:	48 89 45 d0          	mov    %rax,-0x30(%rbp)
    15b9:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    15bd:	48 85 c0             	test   %rax,%rax
    15c0:	75 2c                	jne    15ee <write_i2c+0x80>
    15c2:	48 8d 3d 57 0a 00 00 	lea    0xa57(%rip),%rdi        # 2020 <_IO_stdin_used+0x20>
    15c9:	e8 22 fb ff ff       	callq  10f0 <puts@plt>
    15ce:	8b 45 bc             	mov    -0x44(%rbp),%eax
    15d1:	89 c7                	mov    %eax,%edi
    15d3:	e8 58 fb ff ff       	callq  1130 <close@plt>
    15d8:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    15dc:	48 89 c7             	mov    %rax,%rdi
    15df:	e8 fc fa ff ff       	callq  10e0 <free@plt>
    15e4:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
    15e9:	e9 f8 00 00 00       	jmpq   16e6 <write_i2c+0x178>
    15ee:	8b 45 bc             	mov    -0x44(%rbp),%eax
    15f1:	ba 02 00 00 00       	mov    $0x2,%edx
    15f6:	be 02 07 00 00       	mov    $0x702,%esi
    15fb:	89 c7                	mov    %eax,%edi
    15fd:	b8 00 00 00 00       	mov    $0x0,%eax
    1602:	e8 19 fb ff ff       	callq  1120 <ioctl@plt>
    1607:	8b 45 bc             	mov    -0x44(%rbp),%eax
    160a:	ba 01 00 00 00       	mov    $0x1,%edx
    160f:	be 01 07 00 00       	mov    $0x701,%esi
    1614:	89 c7                	mov    %eax,%edi
    1616:	b8 00 00 00 00       	mov    $0x0,%eax
    161b:	e8 00 fb ff ff       	callq  1120 <ioctl@plt>
    1620:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%rbp)
    1627:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    162b:	66 c7 40 04 02 00    	movw   $0x2,0x4(%rax)
    1631:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    1635:	8b 55 b8             	mov    -0x48(%rbp),%edx
    1638:	66 89 10             	mov    %dx,(%rax)
    163b:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    163f:	66 c7 40 02 00 00    	movw   $0x0,0x2(%rax)
    1645:	48 8b 5d d0          	mov    -0x30(%rbp),%rbx
    1649:	bf 02 00 00 00       	mov    $0x2,%edi
    164e:	e8 ed fa ff ff       	callq  1140 <malloc@plt>
    1653:	48 89 43 08          	mov    %rax,0x8(%rbx)
    1657:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    165b:	48 8b 40 08          	mov    0x8(%rax),%rax
    165f:	8b 55 b4             	mov    -0x4c(%rbp),%edx
    1662:	88 10                	mov    %dl,(%rax)
    1664:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    1668:	48 8b 40 08          	mov    0x8(%rax),%rax
    166c:	48 83 c0 01          	add    $0x1,%rax
    1670:	8b 55 b0             	mov    -0x50(%rbp),%edx
    1673:	88 10                	mov    %dl,(%rax)
    1675:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
    1679:	8b 45 bc             	mov    -0x44(%rbp),%eax
    167c:	be 07 07 00 00       	mov    $0x707,%esi
    1681:	89 c7                	mov    %eax,%edi
    1683:	b8 00 00 00 00       	mov    $0x0,%eax
    1688:	e8 93 fa ff ff       	callq  1120 <ioctl@plt>
    168d:	89 45 cc             	mov    %eax,-0x34(%rbp)
    1690:	83 7d cc 00          	cmpl   $0x0,-0x34(%rbp)
    1694:	79 2f                	jns    16c5 <write_i2c+0x157>
    1696:	48 8d 3d a7 09 00 00 	lea    0x9a7(%rip),%rdi        # 2044 <_IO_stdin_used+0x44>
    169d:	e8 4e fa ff ff       	callq  10f0 <puts@plt>
    16a2:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    16a6:	48 8b 40 08          	mov    0x8(%rax),%rax
    16aa:	48 89 c7             	mov    %rax,%rdi
    16ad:	e8 2e fa ff ff       	callq  10e0 <free@plt>
    16b2:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    16b6:	48 89 c7             	mov    %rax,%rdi
    16b9:	e8 22 fa ff ff       	callq  10e0 <free@plt>
    16be:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
    16c3:	eb 21                	jmp    16e6 <write_i2c+0x178>
    16c5:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    16c9:	48 8b 40 08          	mov    0x8(%rax),%rax
    16cd:	48 89 c7             	mov    %rax,%rdi
    16d0:	e8 0b fa ff ff       	callq  10e0 <free@plt>
    16d5:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    16d9:	48 89 c7             	mov    %rax,%rdi
    16dc:	e8 ff f9 ff ff       	callq  10e0 <free@plt>
    16e1:	b8 00 00 00 00       	mov    $0x0,%eax
    16e6:	48 8b 4d e8          	mov    -0x18(%rbp),%rcx
    16ea:	64 48 33 0c 25 28 00 	xor    %fs:0x28,%rcx
    16f1:	00 00 
    16f3:	74 05                	je     16fa <write_i2c+0x18c>
    16f5:	e8 06 fa ff ff       	callq  1100 <__stack_chk_fail@plt>
    16fa:	48 83 c4 48          	add    $0x48,%rsp
    16fe:	5b                   	pop    %rbx
    16ff:	5d                   	pop    %rbp
    1700:	c3                   	retq   

0000000000001701 <main>:
    1701:	f3 0f 1e fa          	endbr64 
    1705:	55                   	push   %rbp
    1706:	48 89 e5             	mov    %rsp,%rbp
    1709:	48 83 ec 20          	sub    $0x20,%rsp
    170d:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1714:	00 00 
    1716:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    171a:	31 c0                	xor    %eax,%eax
    171c:	c6 45 ef 00          	movb   $0x0,-0x11(%rbp)
    1720:	66 c7 45 f5 00 00    	movw   $0x0,-0xb(%rbp)
    1726:	c6 45 f7 00          	movb   $0x0,-0x9(%rbp)
    172a:	e8 3a fb ff ff       	callq  1269 <open_i2c>
    172f:	89 45 f0             	mov    %eax,-0x10(%rbp)
    1732:	8b 45 f0             	mov    -0x10(%rbp),%eax
    1735:	ba 02 00 00 00       	mov    $0x2,%edx
    173a:	be 02 00 00 00       	mov    $0x2,%esi
    173f:	89 c7                	mov    %eax,%edi
    1741:	e8 85 fb ff ff       	callq  12cb <hd_i2c_set>
    1746:	8b 45 f0             	mov    -0x10(%rbp),%eax
    1749:	ba 00 00 00 00       	mov    $0x0,%edx
    174e:	be 04 07 00 00       	mov    $0x704,%esi
    1753:	89 c7                	mov    %eax,%edi
    1755:	b8 00 00 00 00       	mov    $0x0,%eax
    175a:	e8 c1 f9 ff ff       	callq  1120 <ioctl@plt>
    175f:	85 c0                	test   %eax,%eax
    1761:	74 16                	je     1779 <main+0x78>
    1763:	48 8d 3d ec 08 00 00 	lea    0x8ec(%rip),%rdi        # 2056 <_IO_stdin_used+0x56>
    176a:	e8 f1 f9 ff ff       	callq  1160 <perror@plt>
    176f:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
    1774:	e9 41 01 00 00       	jmpq   18ba <main+0x1b9>
    1779:	8b 45 f0             	mov    -0x10(%rbp),%eax
    177c:	ba 68 00 00 00       	mov    $0x68,%edx
    1781:	be 03 07 00 00       	mov    $0x703,%esi
    1786:	89 c7                	mov    %eax,%edi
    1788:	b8 00 00 00 00       	mov    $0x0,%eax
    178d:	e8 8e f9 ff ff       	callq  1120 <ioctl@plt>
    1792:	85 c0                	test   %eax,%eax
    1794:	74 16                	je     17ac <main+0xab>
    1796:	48 8d 3d d3 08 00 00 	lea    0x8d3(%rip),%rdi        # 2070 <_IO_stdin_used+0x70>
    179d:	e8 be f9 ff ff       	callq  1160 <perror@plt>
    17a2:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
    17a7:	e9 0e 01 00 00       	jmpq   18ba <main+0x1b9>
    17ac:	8b 45 f0             	mov    -0x10(%rbp),%eax
    17af:	ba 75 00 00 00       	mov    $0x75,%edx
    17b4:	be 68 00 00 00       	mov    $0x68,%esi
    17b9:	89 c7                	mov    %eax,%edi
    17bb:	e8 96 fb ff ff       	callq  1356 <read_i2c>
    17c0:	88 45 ef             	mov    %al,-0x11(%rbp)
    17c3:	0f b6 45 ef          	movzbl -0x11(%rbp),%eax
    17c7:	89 c6                	mov    %eax,%esi
    17c9:	48 8d 3d b9 08 00 00 	lea    0x8b9(%rip),%rdi        # 2089 <_IO_stdin_used+0x89>
    17d0:	b8 00 00 00 00       	mov    $0x0,%eax
    17d5:	e8 36 f9 ff ff       	callq  1110 <printf@plt>
    17da:	48 8d 55 f5          	lea    -0xb(%rbp),%rdx
    17de:	8b 45 f0             	mov    -0x10(%rbp),%eax
    17e1:	49 89 d0             	mov    %rdx,%r8
    17e4:	b9 03 00 00 00       	mov    $0x3,%ecx
    17e9:	ba 00 00 00 00       	mov    $0x0,%edx
    17ee:	be 68 00 00 00       	mov    $0x68,%esi
    17f3:	89 c7                	mov    %eax,%edi
    17f5:	e8 12 fd ff ff       	callq  150c <read_i2c_block_frequency>
    17fa:	0f b6 45 f7          	movzbl -0x9(%rbp),%eax
    17fe:	0f b6 c8             	movzbl %al,%ecx
    1801:	0f b6 45 f6          	movzbl -0xa(%rbp),%eax
    1805:	0f b6 d0             	movzbl %al,%edx
    1808:	0f b6 45 f5          	movzbl -0xb(%rbp),%eax
    180c:	0f b6 c0             	movzbl %al,%eax
    180f:	89 c6                	mov    %eax,%esi
    1811:	48 8d 3d 80 08 00 00 	lea    0x880(%rip),%rdi        # 2098 <_IO_stdin_used+0x98>
    1818:	b8 00 00 00 00       	mov    $0x0,%eax
    181d:	e8 ee f8 ff ff       	callq  1110 <printf@plt>
    1822:	8b 45 f0             	mov    -0x10(%rbp),%eax
    1825:	b9 ee 00 00 00       	mov    $0xee,%ecx
    182a:	ba 00 00 00 00       	mov    $0x0,%edx
    182f:	be 68 00 00 00       	mov    $0x68,%esi
    1834:	89 c7                	mov    %eax,%edi
    1836:	e8 33 fd ff ff       	callq  156e <write_i2c>
    183b:	8b 45 f0             	mov    -0x10(%rbp),%eax
    183e:	b9 dd 00 00 00       	mov    $0xdd,%ecx
    1843:	ba 01 00 00 00       	mov    $0x1,%edx
    1848:	be 68 00 00 00       	mov    $0x68,%esi
    184d:	89 c7                	mov    %eax,%edi
    184f:	e8 1a fd ff ff       	callq  156e <write_i2c>
    1854:	8b 45 f0             	mov    -0x10(%rbp),%eax
    1857:	b9 aa 00 00 00       	mov    $0xaa,%ecx
    185c:	ba 02 00 00 00       	mov    $0x2,%edx
    1861:	be 68 00 00 00       	mov    $0x68,%esi
    1866:	89 c7                	mov    %eax,%edi
    1868:	e8 01 fd ff ff       	callq  156e <write_i2c>
    186d:	48 8d 55 f5          	lea    -0xb(%rbp),%rdx
    1871:	8b 45 f0             	mov    -0x10(%rbp),%eax
    1874:	49 89 d0             	mov    %rdx,%r8
    1877:	b9 03 00 00 00       	mov    $0x3,%ecx
    187c:	ba 00 00 00 00       	mov    $0x0,%edx
    1881:	be 68 00 00 00       	mov    $0x68,%esi
    1886:	89 c7                	mov    %eax,%edi
    1888:	e8 7f fc ff ff       	callq  150c <read_i2c_block_frequency>
    188d:	0f b6 45 f7          	movzbl -0x9(%rbp),%eax
    1891:	0f b6 c8             	movzbl %al,%ecx
    1894:	0f b6 45 f6          	movzbl -0xa(%rbp),%eax
    1898:	0f b6 d0             	movzbl %al,%edx
    189b:	0f b6 45 f5          	movzbl -0xb(%rbp),%eax
    189f:	0f b6 c0             	movzbl %al,%eax
    18a2:	89 c6                	mov    %eax,%esi
    18a4:	48 8d 3d ed 07 00 00 	lea    0x7ed(%rip),%rdi        # 2098 <_IO_stdin_used+0x98>
    18ab:	b8 00 00 00 00       	mov    $0x0,%eax
    18b0:	e8 5b f8 ff ff       	callq  1110 <printf@plt>
    18b5:	b8 00 00 00 00       	mov    $0x0,%eax
    18ba:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
    18be:	64 48 33 0c 25 28 00 	xor    %fs:0x28,%rcx
    18c5:	00 00 
    18c7:	74 05                	je     18ce <main+0x1cd>
    18c9:	e8 32 f8 ff ff       	callq  1100 <__stack_chk_fail@plt>
    18ce:	c9                   	leaveq 
    18cf:	c3                   	retq   

00000000000018d0 <__libc_csu_init>:
    18d0:	f3 0f 1e fa          	endbr64 
    18d4:	41 57                	push   %r15
    18d6:	4c 8d 3d 83 24 00 00 	lea    0x2483(%rip),%r15        # 3d60 <__frame_dummy_init_array_entry>
    18dd:	41 56                	push   %r14
    18df:	49 89 d6             	mov    %rdx,%r14
    18e2:	41 55                	push   %r13
    18e4:	49 89 f5             	mov    %rsi,%r13
    18e7:	41 54                	push   %r12
    18e9:	41 89 fc             	mov    %edi,%r12d
    18ec:	55                   	push   %rbp
    18ed:	48 8d 2d 74 24 00 00 	lea    0x2474(%rip),%rbp        # 3d68 <__do_global_dtors_aux_fini_array_entry>
    18f4:	53                   	push   %rbx
    18f5:	4c 29 fd             	sub    %r15,%rbp
    18f8:	48 83 ec 08          	sub    $0x8,%rsp
    18fc:	e8 ff f6 ff ff       	callq  1000 <_init>
    1901:	48 c1 fd 03          	sar    $0x3,%rbp
    1905:	74 1f                	je     1926 <__libc_csu_init+0x56>
    1907:	31 db                	xor    %ebx,%ebx
    1909:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
    1910:	4c 89 f2             	mov    %r14,%rdx
    1913:	4c 89 ee             	mov    %r13,%rsi
    1916:	44 89 e7             	mov    %r12d,%edi
    1919:	41 ff 14 df          	callq  *(%r15,%rbx,8)
    191d:	48 83 c3 01          	add    $0x1,%rbx
    1921:	48 39 dd             	cmp    %rbx,%rbp
    1924:	75 ea                	jne    1910 <__libc_csu_init+0x40>
    1926:	48 83 c4 08          	add    $0x8,%rsp
    192a:	5b                   	pop    %rbx
    192b:	5d                   	pop    %rbp
    192c:	41 5c                	pop    %r12
    192e:	41 5d                	pop    %r13
    1930:	41 5e                	pop    %r14
    1932:	41 5f                	pop    %r15
    1934:	c3                   	retq   
    1935:	66 66 2e 0f 1f 84 00 	data16 nopw %cs:0x0(%rax,%rax,1)
    193c:	00 00 00 00 

0000000000001940 <__libc_csu_fini>:
    1940:	f3 0f 1e fa          	endbr64 
    1944:	c3                   	retq   

Disassembly of section .fini:

0000000000001948 <_fini>:
    1948:	f3 0f 1e fa          	endbr64 
    194c:	48 83 ec 08          	sub    $0x8,%rsp
    1950:	48 83 c4 08          	add    $0x8,%rsp
    1954:	c3                   	retq   
